
$(document).ready(function() {
	
	$.extend($.fn.validatebox.defaults.rules, {
		comboRequired : { // 下拉框判断
			validator : function(value, param) {
				return value.length > 0 && value != '请选择';
			}
		},
		emptyText : { // 如果输入框内容为空或者显示无，提示错误
			validator : function(value, param) {
				return value.length > 0 && value != '无';
			}
		},
		posNum : { // 正数
			validator : function(value, param) {
				if (value.length > 10 || value.length == 0) {
					return false;
				}
				var reg = /^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|0|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/;
				return reg.test(value);
			}
		},
		decimal : { // TODO m,n位小数
			validator : function(value, param) {
				var reg = /^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|0|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/;
				return reg.test(value);
			}
		},
		pInteger : {//正整数
			validator : function(value, param) {
				var reg = /^[0-9]*[1-9][0-9]*$/;
				return reg.test(value);
			}
		},
		pInteger1 : {//正整数(非0)
			validator : function(value, param) {
				var reg = /^[1-9]*[1-9][0-9]*$/;
				return reg.test(value);
			}
		},
		
		PositiveNum : { // 正数不包括0
			validator : function(value, param) {
				if (value.length > 10 || value.length == 0) {
					return false;
				}
				var reg = /^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/;
				return reg.test(value);
			}
		}
	});
	
	var easyuiPanelOnOpen = function (left, top) {
	    var iframeWidth = $(this).parent().parent().width();
	   
	    var iframeHeight = $(this).parent().parent().height();

	    var windowWidth = $(this).parent().width();
	    var windowHeight = $(this).parent().height();

	    var setWidth = (iframeWidth - windowWidth) / 2;
	    var setHeight = (iframeHeight - windowHeight) / 2;
	    $(this).parent().css({/* 修正面板位置 */
	        left: setWidth,
	        top: setHeight
	    });

	    if (iframeHeight < windowHeight)
	    {
	        $(this).parent().css({/* 修正面板位置 */
	            left: setWidth,
	            top: 0
	        });
	    }
	    $(".window-shadow").hide();
	};
	$.fn.window.defaults.onOpen = easyuiPanelOnOpen;
});

/**
 * 将数值四舍五入(保留2位小数)后格式化成金额形式
 *
 * @param num 数值(Number或者String)
 * @return 金额格式的字符串,如'1,234,567.45'
 * @type String
 */
function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+
            num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + '.' + cents);
}

function refreshColumns(name,table){
	var cfields = table.datagrid('getColumnFields');
	var coockieColumns = getCookie("column" + name);
	if(coockieColumns != null){
		var columns = coockieColumns.split(",");
		for(var m=0;m<cfields.length;m++){
			table.datagrid('hideColumn', cfields[m]);
		}
		for(var i=0;i<columns.length;i++){
			table.datagrid('showColumn', cfields[columns[i]]);
		}
	}
	
}

//设置coockie
function setCookie(name,value,time)
{
    var strsec = getsec(time);
    var exp = new Date();
    exp.setTime(exp.getTime() + strsec*1);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); 
    if(arr=document.cookie.match(reg))
        return unescape(arr[2]);
    else
        return null;
}

function getsec(str)
{
   var str1=str.substring(1,str.length)*1;
   var str2=str.substring(0,1);
   if (str2=="s")
   {
        return str1*1000;
   }
   else if (str2=="h")
   {
       return str1*60*60*1000;
   }
   else if (str2=="d")
   {
       return str1*24*60*60*1000;
   }
} 

// 表单信息转JSON
function toJOSNStr(jObject) {
	var results = '{';
	jQuery.each(jObject, function(i, field) {
		if (i == 0) {
			results += '"' + field.name + '":"' + field.value + '"';
		} else {
			results += ',"' + field.name + '":"' + field.value + '"';
		}

	});
	return results + '}';
}

// datagrid表格控件中单行操作钮的控制
function singleButton(rowData, button) {
	var rowsLength = rowData.length;
	if (rowsLength <= 0 || rowsLength > 1) {
		button.linkbutton('disable');
	} else {
		button.linkbutton('enable');
	}
}

// datagrid表格控件中单行操作钮的控制(带条件),attr属性,value条件，属性值在value条件里面，按钮就能点击
function singleButtonS(rowData, attr, value, button) {
	var rowsLength = rowData.length;
	if (rowsLength <= 0 || rowsLength > 1) {
		button.linkbutton('disable');
	} else {
		if (value instanceof Array) {
			for ( var i = 0; i < rowData.length; i++) {
				if (!isInArray(value, rowData[i][attr])) {
					button.linkbutton('disable');
					return;
				}
			}
		} else {
			for ( var i = 0; i < rowData.length; i++) {
				if (rowData[i][attr] != value) {
					button.linkbutton('disable');
					return;
				}
			}
		}
		button.linkbutton('enable');
	}
}

// datagrid表格控件中单行操作钮的控制(带反向条件)
function singleButtonSReject(rowData, attr, value, button) {
    var rowsLength = rowData.length;
    if (rowsLength <= 0 || rowsLength > 1) {
        button.linkbutton('disable');
    } else {
        if (value instanceof Array) {
            for ( var i = 0; i < rowData.length; i++) {
                if (isInArray(value, rowData[i][attr])) {
                    button.linkbutton('enable');
                    return;
                }
            }
        } else {
            for ( var i = 0; i < rowData.length; i++) {
                if (rowData[i][attr] != value) {
                    button.linkbutton('enable');
                    return;
                }
            }
        }
        button.linkbutton('disable');
    }
}

// 按Enter键查询操作
function clickEnterSearch(buttonName) {
	document.onkeydown = function(e)
    {     
        var ev = document.all ? window.event : e;    
        if(ev.keyCode==13) 
        {  
        	buttonName.click();                                       
        }  
    };
}

//液化厂财务专用:控制“补充信息按钮”
function controlUpdateGbillDetailButton(rowData, value, button) {
	var rowsLength = rowData.length;
	if (rowsLength <= 0 || rowsLength > 1) {
		button.linkbutton('disable');
		return;
	} else if (value == "" || value == 1 || value == 3 || value == 5) {
		button.linkbutton('disable');
		return;
	}
	button.linkbutton('enable');
}

//液化厂财务专用:控制“提交确认按钮”
function controlSendGbillButton(rowsData, value, button) {
	var rowsLength = rowsData.length;
	if (rowsLength == 0) {//如果没有数据
		button.linkbutton('disable');
		return;
	} else if (value != "" || value != 0) {//驳回、未提交可以提交
		button.linkbutton('disable');
		return;
	}
	button.linkbutton('enable');
}

//液化厂财务专用:控制“确认回执按钮”
function controlConfirmGbillButton(rowsData, value, button) {
	var rowsLength = rowsData.length;
	if (rowsLength == 0) {
		button.linkbutton('disable');
		return;
	} else if (value != 1) {//已提交时可以确定回执
		button.linkbutton('disable');
		return;
	}
	button.linkbutton('enable');
}

function controlPrintGbillButton(rowsData, value, button) {
	var rowsLength = rowsData.length;
	if (rowsLength == 0) {
		button.linkbutton('disable');
		return;
	} else if (value != 4) {
		button.linkbutton('disable');
		return;
	}
	button.linkbutton('enable');
}

// datagrid表格控件中多行操作钮的控制
function multipleButton(rowData, button) {
	var rowsLength = rowData.length;
	if (rowsLength <= 0) {
		button.linkbutton('disable');
	} else {
		button.linkbutton('enable');
	}
}

// datagrid表格控件中多行操作钮的控制(带条件)
function multipleButtonS(rowData, attr, value, button) {
	var rowsLength = rowData.length;
	if (rowsLength <= 0) {
		button.linkbutton('disable');
	} else {
		if (value instanceof Array) {
			for ( var i = 0; i < rowData.length; i++) {
				if (!isInArray(value, rowData[i][attr])) {
					button.linkbutton('disable');
					return;
				}
			}
		} else {
			for ( var i = 0; i < rowData.length; i++) {
				if (rowData[i][attr] != value) {
					button.linkbutton('disable');
					return;
				}
			}
		}
		button.linkbutton('enable');
	}
}

//datagrid表格控件中多行操作钮的控制(带条件)
function multipleButtonS1(rowData, attr, value, button) {
	
	
		if (value instanceof Array) {
				if (attr!=value) {
					button.linkbutton('disable');
					return;
				}
			
		} else {
			
				if (attr!=value) {
					button.linkbutton('disable');
					return;
				}
			
		
		button.linkbutton('enable');
	}
}


// datagrid表格控件中多行操作钮的控制(带反向条件)
function multipleButtonSReject(rowData, attr, value, button) {
    var rowsLength = rowData.length;
    if (rowsLength <= 0) {
        button.linkbutton('disable');
    } else {
        if (value instanceof Array) {
            for ( var i = 0; i < rowData.length; i++) {
                if (!isInArray(value, rowData[i][attr])) {
                    button.linkbutton('enable');
                    return;
                }
            }
        } else {
            for ( var i = 0; i < rowData.length; i++) {
                if (rowData[i][attr] != value) {
                    button.linkbutton('enable');
                    return;
                }
            }
        }
        button.linkbutton('disable');
    }
}

// 表头右键点击目录
function createColumnMenu(table, cmenu) {
	cmenu = $('<div/>').appendTo('body');
	cmenu.menu({
		onClick : function(item) {
			if (item.iconCls == 'icon-ok') {
				table.datagrid('hideColumn', item.name);
				cmenu.menu('setIcon', {
					target : item.target,
					iconCls : 'icon-empty'
				});
			} else {
				table.datagrid('showColumn', item.name);
				cmenu.menu('setIcon', {
					target : item.target,
					iconCls : 'icon-ok'
				});
			}
		}
	});
	var fields = table.datagrid('getColumnFields');
	for ( var i = 0; i < fields.length; i++) {
		var field = fields[i];
		var col = table.datagrid('getColumnOption', field);
		if (!col.hidden) {
			cmenu.menu('appendItem', {
				text : col.title,
				name : field,
				iconCls : 'icon-ok'
			});
		}
	}
	return cmenu;
}

// 表格分页设置
function setTablePage(table) {
	table.datagrid('getPager').pagination({
		pageSize : 10,// 每页显示的记录条数，默认为10
		pageList : [ 10,30, 50, 100,200 ],// 可以设置每页记录条数的列表
		beforePageText : '第',// 页数文本框前显示的汉字
		afterPageText : '页    共 {pages} 页',
		displayMsg : '当前显示 {from} - {to} 条记录   共 {total} 条记录',
		onBeforeRefresh : function(pageNumber, pageSize) {
			$(this).pagination('loading');
		}
	});
}

function getStyle(obj, attr) {
	eval('(usr.' + sss + ')');
	if (obj.currentStyle) {// 判断浏览器是否支持currentStyle属性(IE特有)
		return obj.currentStyle[attr];// 如果支持则返回获取到的数据
	} else {
		return getComputedStyle(obj, false)[attr];// 兼容其他的浏览器
	}
}


function lng_valid(toolbar,lngNumberVal) {
    $.ajax({
        type: "GET",
        url: "/mes-wms/lng/valid",
        data: {lngNumber:lngNumberVal},
        dataType: "json",
        beforeSend: function (xhr) {
            xhr.withCredentials = true
        },
        success: function(data){
            console.log(data);
            if (data.code==200)
            {
            	console.log(data.msg)
            	setButton(toolbar,data.msg);

            }else if(data.code==201)
            {

                $(location).attr('href','/wms/commons/noright.jsp');

            }else if(data.code==203)
            {
                $(location).attr('href','/wms/login.do');
            }


        },
        error:function(e){
            console.log(e);
            alert("当前页面错误请刷新")
        }
    });
}


function setButtonNew(toolbar,lngNumberVal){

    lng_valid(toolbar,lngNumberVal);

}
//按钮分配权限
function setButton(toolbar,buttonMenu){
	var buttonId = new Array();
	var buttons = {};
	for ( var i = 0; i < toolbar.length; i++) {
		buttonId[i] = toolbar[i]["id"];
		buttons[toolbar[i]["id"]] = toolbar[i]["text"];
	}
	initButtons(buttonId,buttons,buttonMenu);
}
//按钮分配权限同上
function initButtons(buttonId,buttons,buttonMenu){
	for(var i=0;i<buttonId.length;i++){
		$('#'+buttonId[i]).css("display","none");
	}
	var arry= new Array();
	arry=buttonMenu.split(","); 
    for(var i=0;i<arry.length;i++){
    	for(var j=0;j<buttonId.length;j++){
    		if(arry[i] == buttons[buttonId[j]])
    			$('#'+buttonId[j]).css("display","");
    	}
    }
}	

function isInArray(array, value) {
	for ( var i = 0; i < array.length; i++) {
		if (value == array[i]) {
			return true;
		}
	}
	return false;
}

// 表单序列化有转JSON格式
function convertArray(o) {
	var v = {};
	for ( var i in o) {
		if (o[i].name != '__VIEWSTATE') {
			if (typeof (v[o[i].name]) == 'undefined')
				v[o[i].name] = o[i].value;
			else
				v[o[i].name] += "," + o[i].value;
		}
	}
	return v;
}

// 兼容的事件监听时间(用于日期输入栏)
function onChangeCommon(obj, func) {

}

var cmenu;//表格头列表
//用于更改表格显示列(右键点击表头事件)
function headerContextMenuCom(e, field, table) {
	e.preventDefault();
	if (!cmenu) {
		cmenu = createColumnMenu(table, cmenu);
	}
	cmenu.menu('show', {
		left : e.pageX,
		top : e.pageY
	});
}

function toParamStrCom(rows, info, prop) {
	var paramStr = "";
	for ( var i = 0; i < rows.length; i++) {
		if (i == 0) {
			paramStr += info + "=" + rows[i][prop];
		} else {
			paramStr += "&" + info + "=" + rows[i][prop];
		}
	}
	return paramStr;
}

function accDiv(arg1, arg2) {
	var t1 = 0, t2 = 0, r1, r2;
	try {
		t1 = arg1.toString().split(".")[1].length;
	} catch (e) {
	}
	try {
		t2 = arg2.toString().split(".")[1].length;
	} catch (e) {
	}
	with (Math) {
		r1 = Number(arg1.toString().replace(".", ""));
		r2 = Number(arg2.toString().replace(".", ""));
		return (r1 / r2) * pow(10, t2 - t1);
	}
}
// 给Number类型增加一个div方法，调用起来更加方便。
Number.prototype.div = function(arg) {
	return accDiv(this, arg);
};

// 乘法函数，用来得到精确的乘法结果
// 说明：javascript的乘法结果会有误差，在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
// 调用：accMul(arg1,arg2)
// 返回值：arg1乘以arg2的精确结果
function accMul(arg1, arg2) {
	var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
	try {
		m += s1.split(".")[1].length;
	} catch (e) {
	}
	try {
		m += s2.split(".")[1].length;
	} catch (e) {
	}
	return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
}
// 给Number类型增加一个mul方法，调用起来更加方便。
Number.prototype.mul = function(arg) {
	return accMul(arg, this);
};

// 加法函数，用来得到精确的加法结果
// 说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
// 调用：accAdd(arg1,arg2)
// 返回值：arg1加上arg2的精确结果
function accAdd(arg1, arg2) {
	var r1, r2, m;
	try {
		r1 = arg1.toString().split(".")[1].length;
	} catch (e) {
		r1 = 0;
	}
	try {
		r2 = arg2.toString().split(".")[1].length;
	} catch (e) {
		r2 = 0;
	}
	m = Math.pow(10, Math.max(r1, r2));
	return (arg1 * m + arg2 * m) / m;
}
// 给Number类型增加一个add方法，调用起来更加方便。
Number.prototype.add = function(arg) {
	return accAdd(arg, this);
};

// 减法函数，用来得到精确的减法结果
// 说明：javascript的减法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。
// 调用：accSubtr(arg1,arg2)
// 返回值：arg1减去arg2的精确结果
function accSubtr(arg1, arg2) {
	var r1, r2, m, n;
	try {
		r1 = arg1.toString().split(".")[1].length;
	} catch (e) {
		r1 = 0;
	}
	try {
		r2 = arg2.toString().split(".")[1].length;
	} catch (e) {
		r2 = 0;
	}
	m = Math.pow(10, Math.max(r1, r2));
	// 动态控制精度长度
	n = (r1 >= r2) ? r1 : r2;
	return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
//给Number类型增加一个subtr 方法，调用起来更加方便。
Number.prototype.subtr = function(arg) {
	return accSubtr(arg, this);
};

//给表格内容增加tip提示框
$.extend($.fn.datagrid.methods, {
	/**
	 * 开打提示功能  
	 * @param {} jq  
	 * @param {} params 提示消息框的样式  
	 * @return {}  
	 */
	doCellTip : function(jq, params) {
		function showTip(data, td, e) {
			if ($(td).text() == "")
				return;
			data.tooltip.text($(td).text()).css({
				top : (e.pageY + 10) + 'px',
				left : (e.pageX + 20) + 'px',
				'z-index' : $.fn.window.defaults.zIndex,
				display : 'block'
			});
		}
		;
		return jq.each(function() {
			var grid = $(this);
			var options = $(this).data('datagrid');
			if (!options.tooltip) {
				var panel = grid.datagrid('getPanel').panel('panel');
				var defaultCls = {
					'border' : '1px solid #333',
					'padding' : '1px',
					'color' : '#333',
					'background' : '#f7f5d1',
					'position' : 'absolute',
					'max-width' : '200px',
					'-moz-border-radius' : '4px',
					'-webkit-border-radius' : '4px',
					'display' : 'none'
				};
				var tooltip = $("<div id='celltip'></div>").appendTo('body');
				tooltip.css($.extend({}, defaultCls, params.cls));
				options.tooltip = tooltip;
				panel.find('.datagrid-body').each(
						function() {
							var delegateEle = $(this).find('> div.datagrid-body-inner').length ? $(this).find(
									'> div.datagrid-body-inner')[0] : this;
							$(delegateEle).undelegate('td', 'mouseover').undelegate('td', 'mouseout').undelegate('td',
									'mousemove').delegate('td', {
								'mouseover' : function(e) {
									if (params.delay) {
										if (options.tipDelayTime)
											clearTimeout(options.tipDelayTime);
										var that = this;
										options.tipDelayTime = setTimeout(function() {
											showTip(options, that, e);
										}, params.delay);
									} else {
										showTip(options, this, e);
									}

								},
								'mouseout' : function(e) {
									if (options.tipDelayTime)
										clearTimeout(options.tipDelayTime);
									options.tooltip.css({
										'display' : 'none'
									});
								},
								'mousemove' : function(e) {
									var that = this;
									if (options.tipDelayTime) {
										clearTimeout(options.tipDelayTime);
										options.tipDelayTime = setTimeout(function() {
											showTip(options, that, e);
										}, params.delay);
									} else {
										showTip(options, that, e);
									}
								}
							});
						});

			}

		});
	},
	/**
	 * 关闭消息提示功能  
	 * @param {} jq  
	 * @return {}  
	 */
	cancelCellTip : function(jq) {
		return jq.each(function() {
			var data = $(this).data('datagrid');
			if (data.tooltip) {
				data.tooltip.remove();
				data.tooltip = null;
				var panel = $(this).datagrid('getPanel').panel('panel');
				panel.find('.datagrid-body').undelegate('td', 'mouseover').undelegate('td', 'mouseout').undelegate(
						'td', 'mousemove');
			}
			if (data.tipDelayTime) {
				clearTimeout(data.tipDelayTime);
				data.tipDelayTime = null;
			}
		});
	}
});

Date.prototype.Format = function (fmt) { //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};


/**************************************遮罩层插件***************************************************/
/* 
 *  Document   : mask 1.1
 *  Created on : 2011-12-11, 14:37:38
 *  Author     : GodSon
 *  Email      : wmails@126.com
 *  Link       : www.btboys.com 
 *  
 */
 
(function($){
    function init(target,options){
        var wrap = $(target);
		if($("div.mask",wrap).length) wrap.mask("hide");
		
        wrap.attr("position",wrap.css("position"));
		wrap.attr("overflow",wrap.css("overflow"));
        wrap.css("position", "relative");
		wrap.css("overflow", "hidden");
        
        var maskCss = {
            position:"absolute",
            left:0,
            top:0,
			cursor: "wait",
            background:"#ccc",
            opacity:options.opacity,
            filter:"alpha(opacity="+options.opacity*100+")",
            display:"none"
        };
        
        var maskMsgCss = {
            position:"absolute",
            width:"auto",
            padding:"10px 20px",
            border:"2px solid #ccc",
            color:"white",
			cursor: "wait",
            display:"none",
            borderRadius:5,
            background:"black",
            opacity:0.6,
            filter:"alpha(opacity=60)"
        };
		var width,height,left,top;
		if(target == 'body'){
			width = Math.max(document.documentElement.clientWidth, document.body.clientWidth);
			height = Math.max(document.documentElement.clientHeight, document.body.clientHeight);
		}else{
			width = wrap.outerWidth() || "100%";
			height = wrap.outerHeight() || "100%";
		}
        $('<div class="mask"></div>').css($.extend({},maskCss,{
            display : 'block',
            width : width,
            height : height,
            zIndex:options.zIndex
        })).appendTo(wrap);

		var maskm= $('<div class="mask-msg"></div>').html(options.maskMsg).appendTo(wrap).css(maskMsgCss);
		
		if(target == 'body'){
			left = (Math.max(document.documentElement.clientWidth,document.body.clientWidth) - $('div.mask-msg', wrap).outerWidth())/ 2;
			if(document.documentElement.clientHeight > document.body.clientHeight){
				top = (Math.max(document.documentElement.clientHeight,document.body.clientHeight)  - $('div.mask-msg', wrap).outerHeight())/ 2;
			}else{
				top = (Math.min(document.documentElement.clientHeight,document.body.clientHeight)  - $('div.mask-msg', wrap).outerHeight())/ 2;
			}
			
		}else{
			left = (wrap.width() - $('div.mask-msg', wrap).outerWidth())/ 2;
			top = (wrap.height() - $('div.mask-msg', wrap).outerHeight())/ 2;
		}
		
        maskm.css({
            display : 'block',
            zIndex:options.zIndex+1,
            left : left,
            top :  top
        });
        
        setTimeout(function(){
            wrap.mask("hide");
        }, options.timeout);
            
        return wrap;
    }
       
    $.fn.mask = function(options){   
        if (typeof options == 'string'){
            return $.fn.mask.methods[options](this);
        }
        options = $.extend({}, $.fn.mask.defaults,options);
        return init(this,options);
    };
    $.mask = function(options){  
        if (typeof options == 'string'){
            return $.fn.mask.methods[options]("body");
        }
        options = $.extend({}, $.fn.mask.defaults,options);
        return init("body",options);
    };
	
	$.mask.hide = function(){
		$("body").mask("hide");
	};
	
    $.fn.mask.methods = {
        hide : function(jq) {
            return jq.each(function() {
                var wrap = $(this);
                $("div.mask",wrap).fadeOut(function(){
                    $(this).remove();
                });
                $("div.mask-msg",wrap).fadeOut(function(){
                    $(this).remove();
                    wrap.css("position",  wrap.attr("position"));
					wrap.css("overflow", wrap.attr("overflow"));
                });
            });
        }
    };
    
    $.fn.mask.defaults = {
        maskMsg:'loading...',
        zIndex:100000,
        timeout:600000,
        opacity:0.6
    };
})(jQuery);
/**************************************遮罩层插件***************************************************/